English
Create and configure arr applications stack
We will prepare the anonymous VPN configuration file that qBittorrent requires; we will configure the arr apps Docker stack; and we will bring the stack up through Arcane. The stack consists of the following containers:
- Gotify: Notification engine.
- qBittorrent: Download manager through the bittorrent protocol.
- Sonarr: Series manager.
- Radarr: Movie manager.
- Prowlarr: Search engine manager.
- Bazarr: Subtitle manager.
- Flaresolverr: CAPTCHA solver.
- Profilarr: Quality profile manager for Radarr & Sonarr.
- Jellyfin: Media service.
- Seerr: Media request manager and catalog service.
Create stack
- Run:
./scripts/create_arr_folders.shto generate the container directories on the SSD. - Copy the anonymous VPN configuration file for bittorrent:
scp user@host:/path/to/vpn.conf /Apps/qbittorrent/wireguard/tun0.conf. Change{user@host:/path/to/vpn.conf}to the address of the file on the computer that contains the file. This file must be provided by your VPN provider if you select WireGuard as the protocol. You can also use a USB stick to transfer the configuration file. If your provider requires using OpenVPN you will have to change the container configuration. For more information read the container's guide: https://github.com/Trigus42/alpine-qbittorrentvpn. - Edit the stack file:
nano ./files/arr-stack.yml. - Replace
TZ=America/New_Yorkwith your system time zone. You can use this list as a reference: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones. - Replace the XXX with the
uidandgidof the usermediacenter. You can useid mediacenterto get theuidandgid. - If a GPU is not going to be used, delete the
runtimeanddeploysections of thejellyfincontainer. - If you are going to use OpenVPN for bittorrent, update the
qbittorrentcontainer according to the official guide. - Copy all contents of the file to the clipboard. Save and exit with
Ctrl + X, Y, Enter. - Add stack in Arcane from the browser.
- Access Arcane through https://arcane.myhome.duckdns.org.
- Click "Projects" on the menu on the left and create a new project.
- Name it "arr" and paste the content of the docker-compose.yml that you copied to the clipboard and create the stack. From now on, modifications to the stack must be made through Arcane and not in the file.
Configure Gotify
Access Gotify through https://gotify.myhome.duckdns.org.
Use
adminandadminas username and password.Click on
Adminon the top and change the password to a more secure one. It is again recommended to use Bitwarden for the same.Click on
Appson the top and create the following Apps:Name Description Priority Home Assistant Home Assistant notifications 0 Arr Arr notifications 0 Beszel Beszel notifications 0 Arcane Arcane notifications 0 NAS NAS system notifications 8 Copy and write down the tokens generated for each App.
Optionally, you can upload icons for each App to distinguish at a glance the source of the notification.
Back in the Arcane tab, navigate to "Settings" > "Notifications" and edit "Gotify" channel.
Replace the "{token}" placeholder with the Arcane token.
TIP
If you want to have a different icon for each Arr App (or if you simply want more granular control), you can register a channel for each Arr App instead of a single Arr channel.
Configure qBittorrent
- Access qBittorrent through https://qbittorrent.myhome.duckdns.org.
- Use
adminandadminadminas username and password. - Click the
Optionsbutton. - Configure
Downloadstab. Make the following changes:- "Default Torrent Management Mode" : "Automatic".
- "Default Save Path": "/MediaCenter/torrents".
- Optional: If you want to save the
.torrentfiles in case you need to download something again, you can enable "Copy .torrent files for finished downloads to" and assign: "/MediaCenter/torrents/backup".
- Configure
Connectiontab. Make the following changes:- Disable "Use UPnP / NAT-PMP port forwarding from my router".
- If your VPN provider allows port forwarding, select a port in your VPN interface and set the same value in "Port used for incoming connections".
- If you like, you can adjust the connection limits.
- Configure
Speedtab. Make the following changes:- In the "Alternative Rate Limits" > "Upload" section: Set it to one third of your provider's upload speed.
- In the "Alternative Rate Limits" > "Download" section: Set it to one third of your provider's download speed.
- Enable "Schedule the use of alternative rate limits".
- Choose the time when the Internet is used at home for other things. For example: 08:00 - 01:00 every day.
- Configure
BitTorrenttab. Make the following changes:- Disable
Enable Local Peer Discovery to find more peerssince there is nothing local in the container. - If you like to stop seeding after a goal, you can enable and adjust the limits here. For example "When the rate reaches 1".
- Disable
- Configure
Web UItab. Make the following changes:- Change the password to a more secure one. It is again recommended to use Bitwarden for the same.
- Enable "Bypass authentication for clients on localhost".
- Enable "Bypass authentication for clients in whitelisted IP subnets".
- Add
172.21.3.0/24and the CIDR you generated during docker installation with the subnet1to the list below. For examplefda6:80d8:cf96:1::/64. This will allow containers in Docker'sarrnetwork to be accessed without a password.
- Configure
Advancedtab. Make the following changes:- Ensure that the "Network Interface" is
tun0. If not it means you are not using your VPN and the traffic will not be anonymous. - "Optional IP address to bind to":
All addresses. - Enable "Reannounce to all trackers when IP or port changed".
- Enable "Always announce to all trackers in a tier".
- Enable "Always announce to all tiers".
- Ensure that the "Network Interface" is
- Save.
Configure Radarr
- Access Radarr through https://radarr.myhome.duckdns.org.
- Set password. It is again recommended to use Bitwarden for the same. Leave the authentication method as
Formsand do not disable authentication. - Navigate to "Settings" > "Media Management" and configure.
- Click "Add Root Folder" and select "/MediaCenter/media/movies".
- Navigate to "Settings" > "Download Clients" and configure.
- Add new client.
- Select "qBittorrent".
- "Name": "qBittorrent".
- "Host": "qbittorrent".
- "Port": "8080".
- "Category": "movies".
- Click "Test" and then "Save".
- Navigate to "Settings" > "Connect" and configure.
- Add new connection.
- Select "Gotify".
- "Name": "Gotify".
- Enable the triggers you wish to receive notifications for.
- "Gotify Server": "http://gotify".
- "App Token": Enter the token you generated in Gotify for Arr Apps.
- Click "Test" and then "Save".
- Navigate to "Settings" > "General".
- Copy the API Key to a notepad as we will need it later.
Configure Sonarr
- Access Sonarr through https://sonarr.myhome.duckdns.org.
- Set password. It is again recommended to use Bitwarden for the same. Leave the authentication method as
Formsand do not disable authentication. - Navigate to "Settings" > "Media Management" and configure.
- Click "Add Root Folder" and select "/MediaCenter/media/tv".
- Navigate to "Settings" > "Download Clients" and configure.
- Add new client.
- Select "qBittorrent".
- "Name": "qBittorrent".
- "Host": "qbittorrent".
- "Port": "8080".
- "Category": "tv".
- Click "Test" and then "Save."
- Navigate to "Settings" > "Connect" and configure.
- Add new connection.
- Select "Gotify".
- "Name": "Gotify".
- Enable the triggers you wish to receive notifications for.
- "Gotify Server": "http://gotify".
- "App Token": Enter the token you generated in Gotify for Arr Apps.
- Click "Test" and then "Save".
- Navigate to "Settings" > "General".
- Copy the API Key to a notepad as we will need it later.
Configure Prowlarr
- Access Prowlarr through https://prowlarr.myhome.duckdns.org.
- Set password. It is again recommended to use Bitwarden for the same. Leave the authentication method as
Formsand do not disable authentication. - Navigate to "Settings" > "Indexers" and configure.
- Add new proxy.
- Select "FlareSolverr".
- "Name": "FlareSolverr".
- "Tags": "proxy".
- "Host": "http://flaresolverr:8191/".
- Click "Test" and then "Save."
- Navigate to "Settings" > "Apps" and configure.
- Add new application.
- Select "Radarr"
- "Name": "Radarr".
- "Sync Level": "Full Sync".
- "Tags": "radarr".
- "Prowlarr Server": "http://prowlarr:9696".
- "Radarr Server": "http://radarr:7878".
- "API Key": paste the Radarr API Key that we copied before.
- Click "Test" and then "Save."
- Add new application.
- Select "Sonarr"
- "Name": "Sonarr".
- "Sync Level": "Full Sync".
- "Tags": "sonarr".
- "Prowlarr Server": "http://prowlarr:9696".
- "Sonarr Server": "http://sonarr:8989".
- "API Key": paste the Sonarr API Key that we copied before.
- Click "Test" and then "Save."
- Navigate to "Settings" > "Download Clients" and configure.
- Add new client.
- Select "qBittorrent".
- "Name": "qBittorrent".
- "Host": "qbittorrent".
- "Port": "8080".
- "Default Category": "manual".
- Click "Test" and then "Save."
- Navigate to "Indexers" and configure.
- Add indexer.
- Choose the indexer of your preference.
- Configure the indexer to your preference.
- "Tags": Add "sonarr" if you want to use this indexer with Sonarr. Add "radarr" if you want to use this indexer with Radarr. Add "proxy" if this indexer requires FlareSolverr.
- Click "Test" and then "Save."
- Repeat the steps for any other indexers you want. Prowlarr will push the indexers' details to Radarr and Sonarr.
- Navigate to "Settings" > "Notifications" and configure.
- Add new connection.
- Select "Gotify".
- "Name": "Gotify".
- Enable the triggers you wish to receive notifications for.
- "Gotify Server": "http://gotify".
- "App Token": Enter the token you generated in Gotify for Arr Apps.
- Click "Test" and then "Save".
Configure Bazarr
- Access Bazarr through https://bazarr.myhome.duckdns.org.
- Set password. It is again recommended to use Bitwarden for the same. Leave the authentication method as
Formsand do not disable authentication. - Navigate to "Settings" > "Languages" and configure.
- "Languages Filter": Select the languages you are interested in downloading. It's a good idea to have a backup language in case one doesn't exist for your preferred one.
- Click "Add New Profile".
- "Name": The name of the primary language.
- Add primary language and backup languages in the order of your preference.
- "Cutoff": Select the primary language.
- Save.
- If you want other languages, you can repeat adding another profile.
- Select the default language for series and movies.
- Save.
- Navigate to "Settings" > "Providers" and configure.
- Add the subtitle providers of your choice.
- Navigate to “Settings” > “Sonarr” and configure.
- Enable Sonarr.
- "Host" > "Address": "sonarr".
- "Host" > "Port": "8989".
- "Host" > "API Key": Paste the Sonarr API Key that we copied before.
- Click "Test" and then "Save."
- Navigate to “Settings” > “Radarr” and configure.
- Enable Radarr.
- "Host" > "Address": "radarr".
- "Host" > "Port": "7878".
- "Host" > "API Key": Paste the Radarr API Key that we copied before.
- Click "Test" and then "Save."
- Navigate to "Settings" > "Notifications" and configure.
- Add new connection.
- Select "Gotify".
- "URL": "gotify://gotify/{token}". Replace
{token}with the token you generated in Gotify for Arr Apps. - Click "Test" and then "Save".
- Click "Save" at the top.
- To configure other tabs, it is recommended to use the following guide: https://trash-guides.info/Bazarr/
Configure Profilarr
- Access Profilarr through https://profilarr.myhome.duckdns.org.
- Follow the wizard to create a new username and password. It is again recommended to use Bitwarden for the same.
- Right click on "Dictionarry Database" and copy the link.
- Click on "Link Repository", paste the link and click "Link".
- Navigate to the "External Apps" tab.
- Click on "Add New App" and configure.
- "Name": "Sonarr".
- "Type": "Sonarr".
- "Arr Server": "http://sonarr:8989".
- "API Key": Paste the Sonarr API Key that we copied before.
- Clic "Test Connection" and then "Add".
- Click on "Add New App" and configure.
- "Name": "Radarr".
- "Type": "Radarr".
- "Arr Server": "http://radarr:7878".
- "API Key": Paste the Radarr API Key that we copied before.
- Clic "Test Connection" and then "Add".
- Navigate to the "Quality Profiles" tab.
- Clic "Select" and select the profiles you wish to sync.
- Click "Import", select "Radarr" and "Sonarr" and click "Import".
- For more information on how to use Profilarr, read the docs here: https://dictionarry.dev/
Configure Jellyfin
- Access Jellyfin through https://jellyfin.myhome.duckdns.org.
- Follow the wizard to create a new username and password. It is again recommended to use Bitwarden for the same.
- Open side panel and navigate to "Administration" > "Dashboard".
- If you have GPU, navigate to "Playback" and configure.
- Select your GPU. The guide will assume "NVidia NVENC".
- Enable the codecs that your GPU model supports.
- Enable "Enable enhanced NVDEC decoder".
- Enable "Enable hardware encoding".
- Enable "Allow encoding in HEVC format".
- If you like, you can configure other parameters to your liking.
- Save.
- Navigate to "Networking" and configure:
- "Known proxies": "nginx". If you are not going to expose the server to the internet, you can skip this step.
- Save.
- Navigate to "Plugins" > "Catalog" and configure.
- If there will be Anime in your collection, install "AniDB" and "AniList".
- Install "Webhook", "TMBd Box Sets", "TVmaze" and "TheTVDB".
- For the plugins to take effect, restart Jellyfin from Arcane.
- Configure Notifications.
- After restarting, click the "Webhook" plugin and click "Settings".
- "Server Url": "https://jellyfin.myhome.duckdns.org".
- Click "Add Gotify Destination".
- "Webhook Name": "Gotify".
- "Webhook Url": "http://gotify".
- Enable the events you wish to send notifications for.
- "Template":
{ "title": "{{NotificationType}}", "message": " {{~#if_exist NotificationUsername~}}User: {{NotificationUsername}}\n{{~/if_exist~}} {{~#if_exist ClientName~}}Client: {{ClientName}}\n{{~/if_exist~}} {{~#if_exist DeviceName~}}Device: {{DeviceName}}\n{{~/if_exist~}} {{~#if_exist RemoteEndPoint~}}Client IP: {{RemoteEndPoint}}\n{{~/if_exist~}} {{~#if_exist PluginName~}}Plugin Name: {{PluginName}}\n{{~/if_exist~}} {{~#if_exist PluginVersion~}}Plugin Version: {{PluginVersion}}\n{{~/if_exist~}} {{~#if_exist PluginChangelog~}}Changelog: {{json_encode PluginChangelog}}{{~/if_exist~}} ", "priority": {{Priority}} } - "Token": Enter the token you generated in Gotify for Arr Apps.
- "Priority": "5".
- Click "Save".
- For more information on templates you can use, visit: https://github.com/jellyfin/jellyfin-plugin-webhook/tree/master/Jellyfin.Plugin.Webhook/Templates/Gotify.
- Navigate to “Libraries” and configure.
- Add library.
- "Content Type": "Movies".
- "Name": "Movies".
- "Folders": Add "/MediaCenter/media/movies".
- Sort "Metadata downloaders": "TheMovieDb", "AniDB", "AniList", "The Open Movie Database".
- Sort "Image fetchers": "TheMovieDb", "The Open Movie Database", "AniDB", "AniList", "Embedded Image Extractor", "Screen Grabber".
- Configure the other options to your liking and Save.
- Add library.
- "Content Type": "Shows".
- "Name": "Shows".
- "Folders": Add "/MediaCenter/media/tv".
- Sort "Metadata downloaders (TV Shows)": "TheTVDB", "TVmaze", "TheMovieDb", "AniDB", "AniList", "The Open Movie Database".
- Sort "Metadata downloaders (Seasons)": "TVmaze", "TheMovieDb", "AniDB".
- Sort "Metadata downloaders (Episodes)": "TheTVDB", "TVmaze", "TheMovieDb", "AniDB", "The Open Movie Database".
- Sort "Image fetchers (TV Shows)": "TheTVDB", "TVmaze", "TheMovieDb", "AniList", "AniDB".
- Sort "Image fetchers (Seasons)": "TheTVDB", "TVmaze", "TheMovieDb", "AniDB", "AniList".
- Sort "Image fetchers (Episodes)": "TheTVDB", "TVmaze", "TheMovieDb", "The Open Movie Database", "Embedded Image Extractor", "Screen Grabber".
- Configure the other options as you like and Save.
- Navigate to "Users" and configure.
- If more people are going to use Jellyfin, Create more users and configure them as you like.
- Navigate to your profile (User icon top right) > "Subtitles".
- "Preferred subtitle language": Your primary language. Save.
- You can configure the rest of your profile if you wish.
Configure Seerr
- Access Seerr through https://seerr.myhome.duckdns.org.
- Login with Jellyfin.
- Click "Use Jellyfin Account".
- "Jellyfin URL": "http://jellyfin:8096"
- Log in with your username and password.
- Configure libraries.
- Click "Sync Libraries".
- Enable "Movies", "Shows" and "Collections".
- Click "Start Scan".
- Click "Continue".
- Configure Sonarr and Radarr.
- Click "Add Radarr Server".
- Enable "Default Server".
- "Server Name": "Movies".
- "Hostname or IP Address": "radarr".
- "Port": "7878".
- "API Key": Paste the Radarr API Key that we copied before.
- Click on "Test".
- "Quality Profile": choose the default quality profile you want to use.
- "Root Folder": "/MediaCenter/media/movies".
- "Minimum Availability": "Announced."
- Enable "Enable Scan".
- Save.
- Click "Add Sonarr Server".
- Enable "Default Server".
- "Server Name": "Series".
- "Hostname or IP Address": "sonarr".
- "Port": "8989".
- "API Key": Paste the Sonarr API Key that we copied before.
- Click on "Test".
- "Quality Profile": choose the default quality profile you want to use.
- "Root Folder": "/MediaCenter/media/tv".
- "Anime Quality Profile": choose the default quality profile you want to use for Anime. Leave blank if you will not be having anime in your collection.
- "Anime Root Folder": "/MediaCenter/media/tv".
- Enable "Season Folders".
- Enable "Enable Scan".
- Save.
- Import users.
- Navigate to "Users".
- Click on "Import Jellyfin Users".
- You can configure users by clicking "Edit" in the row of the user you want to configure.
- Navigate to "Settings" > "Notifications" and configure.
- Select "Gotify".
- Enable Agent.
- "Server URL": "http://gotify".
- "Application Token": Enter the token you generated in Gotify for Arr Apps.
- "Priority": 5.
- Enable the triggers you wish to receive notifications for.
- Click "Test" and then "Save Changes".
- Navigate to "Network" and configure.
- Enable "Enable Proxy Support".
- Enable "Enable CSRF Protection".
- Click "Save Changes".
- If you wish to configure more options, Navigate to "Settings" and make the desired changes. Otherwise, restart the container from Arcane so the last changes take effect.